home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / glib-2.0 / glib / gspawn.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  5.6 KB  |  139 lines

  1. /* gspawn.h - Process launching
  2.  *
  3.  *  Copyright 2000 Red Hat, Inc.
  4.  *
  5.  * GLib is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Lesser General Public License as
  7.  * published by the Free Software Foundation; either version 2 of the
  8.  * License, or (at your option) any later version.
  9.  *
  10.  * GLib is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * Lesser General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU Lesser General Public
  16.  * License along with GLib; see the file COPYING.LIB.  If not, write
  17.  * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18.  * Boston, MA 02111-1307, USA.
  19.  */
  20.  
  21. #ifndef __G_SPAWN_H__
  22. #define __G_SPAWN_H__
  23.  
  24. #include <glib/gerror.h>
  25.  
  26. G_BEGIN_DECLS
  27.  
  28. /* I'm not sure I remember our proposed naming convention here. */
  29. #define G_SPAWN_ERROR g_spawn_error_quark ()
  30.  
  31. typedef enum
  32. {
  33.   G_SPAWN_ERROR_FORK,   /* fork failed due to lack of memory */
  34.   G_SPAWN_ERROR_READ,   /* read or select on pipes failed */
  35.   G_SPAWN_ERROR_CHDIR,  /* changing to working dir failed */
  36.   G_SPAWN_ERROR_ACCES,  /* execv() returned EACCES */
  37.   G_SPAWN_ERROR_PERM,   /* execv() returned EPERM */
  38.   G_SPAWN_ERROR_2BIG,   /* execv() returned E2BIG */
  39.   G_SPAWN_ERROR_NOEXEC, /* execv() returned ENOEXEC */
  40.   G_SPAWN_ERROR_NAMETOOLONG, /* ""  "" ENAMETOOLONG */
  41.   G_SPAWN_ERROR_NOENT,       /* ""  "" ENOENT */
  42.   G_SPAWN_ERROR_NOMEM,       /* ""  "" ENOMEM */
  43.   G_SPAWN_ERROR_NOTDIR,      /* ""  "" ENOTDIR */
  44.   G_SPAWN_ERROR_LOOP,        /* ""  "" ELOOP   */
  45.   G_SPAWN_ERROR_TXTBUSY,     /* ""  "" ETXTBUSY */
  46.   G_SPAWN_ERROR_IO,          /* ""  "" EIO */
  47.   G_SPAWN_ERROR_NFILE,       /* ""  "" ENFILE */
  48.   G_SPAWN_ERROR_MFILE,       /* ""  "" EMFLE */
  49.   G_SPAWN_ERROR_INVAL,       /* ""  "" EINVAL */
  50.   G_SPAWN_ERROR_ISDIR,       /* ""  "" EISDIR */
  51.   G_SPAWN_ERROR_LIBBAD,      /* ""  "" ELIBBAD */
  52.   G_SPAWN_ERROR_FAILED       /* other fatal failure, error->message
  53.                               * should explain
  54.                               */
  55. } GSpawnError;
  56.  
  57. typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
  58.  
  59. typedef enum
  60. {
  61.   G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
  62.   G_SPAWN_DO_NOT_REAP_CHILD      = 1 << 1,
  63.   /* look for argv[0] in the path i.e. use execvp() */
  64.   G_SPAWN_SEARCH_PATH            = 1 << 2,
  65.   /* Dump output to /dev/null */
  66.   G_SPAWN_STDOUT_TO_DEV_NULL     = 1 << 3,
  67.   G_SPAWN_STDERR_TO_DEV_NULL     = 1 << 4,
  68.   G_SPAWN_CHILD_INHERITS_STDIN   = 1 << 5,
  69.   G_SPAWN_FILE_AND_ARGV_ZERO     = 1 << 6
  70. } GSpawnFlags;
  71.  
  72. GQuark g_spawn_error_quark (void);
  73.  
  74. #ifdef G_OS_WIN32
  75. #define g_spawn_async g_spawn_async_utf8
  76. #define g_spawn_async_with_pipes g_spawn_async_with_pipes_utf8
  77. #define g_spawn_sync g_spawn_sync_utf8
  78. #define g_spawn_command_line_sync g_spawn_command_line_sync_utf8
  79. #define g_spawn_command_line_async g_spawn_command_line_async_utf8
  80. #endif
  81.  
  82. gboolean g_spawn_async (const gchar           *working_directory,
  83.                         gchar                **argv,
  84.                         gchar                **envp,
  85.                         GSpawnFlags            flags,
  86.                         GSpawnChildSetupFunc   child_setup,
  87.                         gpointer               user_data,
  88.                         GPid                  *child_pid,
  89.                         GError               **error);
  90.  
  91.  
  92. /* Opens pipes for non-NULL standard_output, standard_input, standard_error,
  93.  * and returns the parent's end of the pipes.
  94.  */
  95. gboolean g_spawn_async_with_pipes (const gchar          *working_directory,
  96.                                    gchar               **argv,
  97.                                    gchar               **envp,
  98.                                    GSpawnFlags           flags,
  99.                                    GSpawnChildSetupFunc  child_setup,
  100.                                    gpointer              user_data,
  101.                                    GPid                 *child_pid,
  102.                                    gint                 *standard_input,
  103.                                    gint                 *standard_output,
  104.                                    gint                 *standard_error,
  105.                                    GError              **error);
  106.  
  107.  
  108. /* If standard_output or standard_error are non-NULL, the full
  109.  * standard output or error of the command will be placed there.
  110.  */
  111.  
  112. gboolean g_spawn_sync         (const gchar          *working_directory,
  113.                                gchar               **argv,
  114.                                gchar               **envp,
  115.                                GSpawnFlags           flags,
  116.                                GSpawnChildSetupFunc  child_setup,
  117.                                gpointer              user_data,
  118.                                gchar               **standard_output,
  119.                                gchar               **standard_error,
  120.                                gint                 *exit_status,
  121.                                GError              **error);
  122.  
  123. gboolean g_spawn_command_line_sync  (const gchar          *command_line,
  124.                                      gchar               **standard_output,
  125.                                      gchar               **standard_error,
  126.                                      gint                 *exit_status,
  127.                                      GError              **error);
  128. gboolean g_spawn_command_line_async (const gchar          *command_line,
  129.                                      GError              **error);
  130.  
  131. void g_spawn_close_pid (GPid pid);
  132.  
  133.  
  134. G_END_DECLS
  135.  
  136. #endif /* __G_SPAWN_H__ */
  137.  
  138.  
  139.